//待查看
/*
 * 目标：选择排序，先找到数组中最小的元素，将它交换到i=0，然后再寻找到次一级小的元素，交换到i=1，一直到最后。
 *
 *
 * */

#include "stand.h"

int main()
{
	int array[8] = {3,6,2,4,8,2,1};

	int i,j;
	int k ;
	char a = 'o';
	int ac = ARRLEN(array,int);

	for (j=0;j<ac;j++) {
		/* 先得到下标，将此下标的值与array[0]值交换，完成一次*/
		/* if 判断的条件错喽，下面的只是将左右两边的数进行交换，实际上其它两边的数会存在比你当次比较的两个数，还会小,所以正确的做法就二次if，将一次if的数与之前if的数进行比较，也就是说，第一次判断得到一个小数，第二次判断又得到一个小数，二次if的作用就是判断这两个的小数，谁更小*/
		printf("%d \t %d\n",array[j],array[j+1]);
		if (array[j] > array[j+1])
			if (a != 'o') {
				if (array[j+1] < array[k])  //比较第二次	
					k = j+1;
			}else {
				k = j+1; //得到第一次比较成功的产物。理论上，此处只运行一次
				a = 'k';
			}
	}
	swap(array,array+k);

	printf("%d\n",array[0]);
	/*

	for (j=1;j<ac;j++) {
		if (array[j] > array[j+1])
			k = j;
	}
	swap(array,array+k);
	printf("%d\n",array[1]);

	printf("\n");

	for (i = 0;i<ac;i++) {
		for (j = i;j < ac ;j ++) {
			if (array[j] > array[j+1]) {
				k=j;
			}
		}
		swap(array+i,array+k);
		printf("%d\n",array[i]);
	}
	*/
}
